package com.example.smartagrisys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.smartagrisys.dto.FertilizingRecordDTO;
import com.example.smartagrisys.entity.FertilizingRecord;
import com.example.smartagrisys.vo.FertilizingRecordVO;

import java.util.List;

/**
 * 施肥记录服务接口
 */
public interface FertilizingRecordService extends IService<FertilizingRecord> {
    
    /**
     * 添加施肥记录
     * @param dto 施肥记录数据
     * @param farmerId 农户ID
     * @return 记录ID
     */
    Long add(FertilizingRecordDTO dto, Long farmerId);
    
    /**
     * 更新施肥记录
     * @param dto 施肥记录数据
     * @param farmerId 农户ID
     * @return 是否成功
     */
    boolean update(FertilizingRecordDTO dto, Long farmerId);
    
    /**
     * 删除施肥记录
     * @param id 记录ID
     * @param farmerId 农户ID
     * @return 是否成功
     */
    boolean delete(Long id, Long farmerId);
    
    /**
     * 获取施肥记录详情
     * @param id 记录ID
     * @return 施肥记录详情
     */
    FertilizingRecordVO getDetail(Long id);
    
    /**
     * 分页获取农户的施肥记录
     * @param farmerId 农户ID
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页结果
     */
    Page<FertilizingRecordVO> getFarmerFertilizingRecords(Long farmerId, Integer pageNum, Integer pageSize);
    
    /**
     * 获取农户的所有施肥记录
     * @param farmerId 农户ID
     * @return 施肥记录列表
     */
    List<FertilizingRecordVO> getFarmerAllFertilizingRecords(Long farmerId);
} 